/**
 * project: finance-manage
 * package: com.example.interfaces
 * 接口： 数据库 > 操作数据表
 */

package com.example.interfaces;

import java.sql.ResultSet;
import java.sql.SQLException;

public interface DataDAOInterface {

    /**
     * 插入数据
     * @param tableName 表名
     * @param type 类型
     * @param amount 金额
     * @param date 日期
     * @param statement 声明
     * @param notes 备注
     * @return 是否插入成功
     * @throws SQLException SQL异常
     */
    boolean insert(String tableName, String type, double amount, String date, String statement, String notes) throws SQLException;

    /**
     * 删除数据
     * @param tableName 表名
     * @param bid 记录ID
     * @return 是否删除成功
     * @throws SQLException SQL异常
     */
    boolean delete(String tableName, int bid) throws SQLException;

    /**
     * 更新数据
     * @param tableName 表名
     * @param bid 记录ID
     * @param key 字段名
     * @param value 字段值
     * @return 是否更新成功
     * @throws SQLException SQL异常
     */
    boolean update(String tableName, int bid, String key, Object value) throws SQLException;

    /**
     * 查询数据，默认查询全部
     * @param tableName 表名
     * @return 查询结果集
     * @throws SQLException SQL异常
     */
    ResultSet select(String tableName) throws SQLException;

    /**
     * 查询数据，指定查询条数
     * @param tableName 表名
     * @param count 查询条数
     * @return 查询结果集
     * @throws SQLException SQL异常
     */
    ResultSet select(String tableName, int count) throws SQLException;

    /**
     * 根据条件查询数据
     * @param tableName 表名
     * @param key 字段名
     * @param value 字段值
     * @return 查询结果集
     * @throws SQLException SQL异常
     */
    ResultSet select(String tableName, String key, Object value) throws SQLException;
}
